home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 February: Tool Chest / Dev.CD Feb 94.toast / Tool Chest / Development Platforms / MPW Related / MPW Interfaces / CIncludes / EPPC.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-17  |  3.0 KB  |  130 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        EPPC.h
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. */
  11.  
  12. #ifndef __EPPC__
  13. #define __EPPC__
  14.  
  15. #ifndef __PPCTOOLBOX__
  16. #include <PPCToolbox.h>
  17. #endif
  18.  
  19. #ifndef __PROCESSES__
  20. #include <Processes.h>
  21. #endif
  22.  
  23. #ifndef __EVENTS__
  24. #include <Events.h>
  25. #endif
  26.  
  27.  
  28. enum {
  29.  
  30.     kHighLevelEvent = 23,
  31.  
  32. /* postOptions currently supported */
  33.     receiverIDMask = 0x0000F000,
  34.     receiverIDisPSN = 0x00008000,
  35.     receiverIDisSignature = 0x00007000,
  36.     receiverIDisSessionID = 0x00006000,
  37.     receiverIDisTargetID = 0x00005000,
  38.  
  39.     systemOptionsMask = 0x00000F00,
  40.     nReturnReceipt = 0x00000200,
  41.  
  42.     priorityMask = 0x000000FF,
  43.     nAttnMsg = 0x00000001,
  44.  
  45.  
  46. /* error returns from Post and Accept */
  47.  
  48.     bufferIsSmall = -607,
  49.     noOutstandingHLE = -608,
  50.     connectionInvalid = -609,
  51.     noUserInteractionAllowed = -610,    /* no user interaction allowed */
  52.  
  53. /* constant for return receipts */
  54.  
  55.  
  56. #define HighLevelEventMsgClass 'jaym'
  57. #define rtrnReceiptMsgID 'rtrn'
  58.  
  59.     msgWasPartiallyAccepted = 2,
  60.     msgWasFullyAccepted = 1,
  61.     msgWasNotAccepted = 0
  62. };
  63.  
  64. struct TargetID {
  65.     long sessionID;
  66.     PPCPortRec name;
  67.     LocationNameRec location;
  68.     PPCPortRec recvrName;
  69. };
  70.  
  71. typedef struct TargetID TargetID;
  72. typedef TargetID *TargetIDPtr, **TargetIDHdl;
  73.  
  74.  
  75. typedef TargetID SenderID;
  76. typedef SenderID *SenderIDPtr;
  77.  
  78. struct HighLevelEventMsg {
  79.     unsigned short HighLevelEventMsgHeaderLength;
  80.     unsigned short version;
  81.     unsigned long reserved1;
  82.     EventRecord theMsgEvent;
  83.     unsigned long userRefcon;
  84.     unsigned long postingOptions;
  85.     unsigned long msgLength;
  86. };
  87.  
  88. typedef struct HighLevelEventMsg HighLevelEventMsg;
  89. typedef HighLevelEventMsg *HighLevelEventMsgPtr, **HighLevelEventMsgHdl;
  90.  
  91.  
  92. #ifdef __cplusplus
  93. extern "C" {
  94. #endif
  95. pascal OSErr PostHighLevelEvent(const EventRecord *theEvent,
  96.                                 unsigned long receiverID,
  97.                                 unsigned long msgRefcon,
  98.                                 Ptr msgBuff,
  99.                                 unsigned long msgLen,
  100.                                 unsigned long postingOptions)
  101.     = {0x3F3C,0x0034,0xA88F}; 
  102. pascal OSErr AcceptHighLevelEvent(TargetID *sender,
  103.                                   unsigned long *msgRefcon,
  104.                                   Ptr msgBuff,
  105.                                   unsigned long *msgLen)
  106.     = {0x3F3C,0x0033,0xA88F}; 
  107. pascal OSErr GetProcessSerialNumberFromPortName(const PPCPortPtr portName,
  108.     ProcessSerialNumberPtr pPSN)
  109.     = {0x3F3C,0x0035,0xA88F}; 
  110. pascal OSErr GetPortNameFromProcessSerialNumber(PPCPortPtr portName,const ProcessSerialNumberPtr pPSN)
  111.     = {0x3F3C,0x0046,0xA88F}; 
  112. #ifdef __cplusplus
  113. }
  114. #endif
  115. typedef pascal Boolean (*GetSpecificFilterProcPtr) (void *yourDataPtr,
  116.      HighLevelEventMsgPtr msgBuff,
  117.      const TargetID *sender);
  118.  
  119. #ifdef __cplusplus
  120. extern "C" {
  121. #endif
  122. pascal Boolean GetSpecificHighLevelEvent(GetSpecificFilterProcPtr aFilter,
  123.     void *yourDataPtr,OSErr *err)
  124.     = {0x3F3C,0x0045,0xA88F}; 
  125. #ifdef __cplusplus
  126. }
  127. #endif
  128.  
  129. #endif
  130.